package cn.zyq.ykb.mapper.task;

import cn.zyq.ykb.beans.task.MyTask;
import cn.zyq.ykb.beans.task.Task;
import cn.zyq.ykb.beans.task.vo.GetTaskTypeNumberVo;
import cn.zyq.ykb.beans.task.vo.TaskPackageVo;
import cn.zyq.ykb.beans.task.vo.TaskTotalVo;
import cn.zyq.ykb.beans.task.vo.TaskVo;
import cn.zyq.ykb.beans.user.vo.GetUserVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import cn.zyq.ykb.system.config.common.BaseMapper;

import java.util.List;
import java.util.Map;
/**
 * 任务Mapper接口
 *
 * @author SystemAuth
 * @date 2023-05-22
 */
@Component
@Mapper
public interface TaskMapper extends BaseMapper<Task> {
    List<Task> list(Map<String, Object> param);

    List<Task> list1(Map<String, Object> param);

    TaskVo selectTotal();

    TaskPackageVo taskPackage(Integer taskPackageID);

    List<Task> packageList(Map<String, Object> kv);

    TaskPackageVo getTaskPackage(Integer taskPackageID);

    List<Task> rewardList(Map<String, Object> kv);

    List<Task> publishing(Map<String, Object> kv);

    TaskPackageVo statistics(Integer configTaskTypeID);

    TaskPackageVo statisticsAll();

    TaskPackageVo selectByPackageID(Integer taskPackageID);

    List<Task> selectByName(Integer taskPackageID, String taskName);

    List<Task> selectAllList(Map<String, Object> param);

    List<Task> selectAllList1(Map<String, Object> param);

    List<Task> releaseList(Map<String, Object> kv);

    List<Task> getList(Map<String, Object> kv);

    List<MyTask> getPromotionList(Map<String, Object> kv);

    TaskTotalVo tgTotal(Integer userID);

    TaskPackageVo getPackage(Integer taskPackageID, Integer state);

    List<Task> taskListAll(Map<String, Object> param);

    void updateSoldNum(@Param("residueNumber") Integer residueNumber, @Param("number")Integer number, @Param("taskID")Integer taskID);

    List<Task> queryNoPayOrder();

    int getNumber();

    int getYNumber();

    int getRNumber();

    List<GetTaskTypeNumberVo> getTaskTypeNumber();


    List<GetUserVo> getRegisterNumber(@Param("time") String time, @Param("userIDs") String userIDs);


    Integer getMyTaskList(Integer userID);

}
